package com.bls.blslib.base;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;

/**
 * 　　  () 　　　  ()
 * 　　  ( ) 　　　( )
 * 　　  ( ) 　　　( )
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　┻　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ——————————————————
 * Created by BinglingSu on 2017/12/21.
 */

public abstract class BaseRootActivity extends AppCompatActivity implements View.OnClickListener {

    protected boolean isResume = false;  // 是否走OnResume() ;  经过onPause()方法后 走OnResume()

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initRoot();
        initParams();
        setContentView(initLayoutId());
        initFvb();
        initTitle();
        initView();
        initListener();
        initData();
    }


    /**
     * 设置页面最外层布局 FitsSystemWindows 属性
     */
    public void setFitsSystemWindows() {
        View view = View.inflate(getActivity(), initLayoutId(), null);
        ViewGroup contentFrameLayout = (ViewGroup) getActivity().findViewById(android.R.id.content);
        View parentView = contentFrameLayout.getChildAt(0);
        if (parentView != null) {
            parentView.setFitsSystemWindows(true);
        }
    }

    /**
     * 初始化配置
     */
    protected abstract void initRoot();


    /**
     * 初始化参数
     */
    protected abstract void initParams();

    /**
     * 获取布局文件
     *
     * @return 布局文件Id
     */
    protected abstract int initLayoutId();


    /**
     * findViewBuyId
     */
    protected abstract void initFvb();

    /**
     * 初始化标题栏
     */
    protected abstract void initTitle();

    /**
     * 初始化布局
     */
    protected abstract void initView();


    /**
     * 初始化 监听事件
     */
    protected abstract void initListener();


    /**
     * 初始化数据
     */
    protected abstract void initData();

    @Override
    protected void onResume() {
        super.onResume();
        if (isResume) {
            initResume();
        }
    }

    /**
     * 等同于 onResume() 方法
     */
    protected abstract void initResume();


    @Override
    protected void onPause() {
        super.onPause();
        isResume = true;
        initOnPause();
    }

    /**
     * 等同于onPause()方法
     */
    protected abstract void initOnPause();

    @Override
    protected void onDestroy() {
        super.onDestroy();
        initOnDestroy();
    }

    /**
     * 等同于 onDestroy()方法
     */
    protected abstract void initOnDestroy();

    /**
     * 得到Activity
     *
     * @return Activity
     */
    protected Activity getActivity() {
        return this;
    }

    /**
     * 设置点击按钮的监听事件
     *
     * @param views views
     */
    protected void setOnClickListener(View... views) {
        for (View view : views) {
            view.setOnClickListener(this);
        }
    }

    @Override
    public void onClick(View v) {

    }
}
